#ifndef FILESTREAM_H_INCLUDED
#define FILESTREAM_H_INCLUDED

#include "types.h"

class FileStream : public DataStream
{
    public:
        FileStream(const string& filename, iomode mode);
        virtual ~FileStream();

        virtual bool read(void* data, size_t size);
        virtual int getReadOffset();
        virtual bool setReadOffset(int offset, ios_base::seekdir origin);

        virtual bool write(const void* data, size_t size);
        virtual int getWriteOffset();
        virtual bool setWriteOffset(int offset, ios_base::seekdir origin);

    private:
        fstream mFileStr;
};

#endif // FILESTREAM_H_INCLUDED
